// 管理员初始化
// 判断数据库中是否有管理员，如果没有，自动添加一个默认管理员

// Admin 管理员模
const Admin = require('../models/Admin');
// 增加一个管理
exports.addAdmin = async function (adminObj) {
  // 应该判断adminObj的各种属性是否合理，以及账号是否已存在
  // 这里没做判断 ，一个好的系统 需要三层验证 客户端 服务端 数据库
  // 客户端 的验证 是可以避开的 为了 用户体验
  // 至少要存在一层 判断 那就是在 服务端。  保证 业务逻辑的 完整性
  // 数据库 验证  大型系统 要验证的  保证数据的完整性  有些业务会跳过 server 层 直接创建数据库
  const ins = await Admin.create(adminObj);
  console.log(ins, 'logins'); // ins 是实例
  return ins.toJSON(); // 反应一个平面对象 没有其他复杂的 属性和 方法
};

// 删除一个管理
exports.deleteAdmin = async function (adminId) {
  // 方式1
  //   // 1.得到实例  通过主键
  //   const ins = await Admin.findByPk(adminId);
  //   //   console.log(ins);
  //   // 2.删除实例
  //   if (ins) {
  //     await ins.destroy();
  //   }
  // 方式2  通过 模型表 去找实例 然后删除
  const result = await Admin.destroy({
    where: {
      // 查询条件
      id: adminId,
    },
  });
  // 反应一个数字 影响的行数
  return result;
};

// 修改一个管理
exports.updateAdmin = async function (id, adminObj) {
  // 方式1
  // // 1. 得到实例
  // const ins = await Admin.findByPk(id);
  // ins.loginId = adminObj.loginId;
  // // 2. 保存
  // ins.save();

  // 方式2
  const result = await Admin.update(adminObj, {
    where: {
      id,
    },
  });
  // 反应一个数组 影响的行数
  return result;
};
